{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "from pandas.core.frame import DataFrame\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "#港口坐标数据\n",
    "#港口坐标数据描述每个运单在船运的过程中涉及的港口位置信息。\n",
    "port=pd.read_csv('../event_port/port.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#gpsdf.shape\n",
    "#gpsdf.to_csv('gps_sample5kw.csv',index=False)\n",
    "gpsdf_raw=pd.read_csv('筛选的训练data.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished.........\n"
     ]
    }
   ],
   "source": [
    "#对数据进行预处理\n",
    "def get_data(data, mode='train'):\n",
    "    \n",
    "    assert mode=='train' or mode=='test'\n",
    "    \n",
    "    if mode=='train':#船舶将要到达的下一个港口的预计时间,转码格式\n",
    "        pass\n",
    "    elif mode=='test':\n",
    "        data['temp_timestamp'] = data['timestamp']#当前时间\n",
    "        data['onboardDate'] = pd.to_datetime(data['onboardDate'], infer_datetime_format=True)#离开起运港时间\n",
    "    data['timestamp'] = pd.to_datetime(data['timestamp'], infer_datetime_format=True)\n",
    "    data['longitude'] = data['longitude'].astype(float)\n",
    "    data['loadingOrder'] = data['loadingOrder'].astype(str)\n",
    "    data['latitude'] = data['latitude'].astype(float)\n",
    "    data['speed'] = data['speed'].astype(float)\n",
    "    data['direction'] = data['direction'].astype(float)\n",
    "\n",
    "    return data\n",
    "gpsdf = get_data(gpsdf_raw, mode='train')\n",
    "print('finished.........')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished.........\n"
     ]
    }
   ],
   "source": [
    "grouped=gpsdf.groupby('loadingOrder')\n",
    "cnt_len=[]\n",
    "cut_name=[]\n",
    "for name,group in grouped:\n",
    "    if len(group)<100:\n",
    "        cut_name.append(name)\n",
    "gpsdf=gpsdf[~gpsdf['loadingOrder'].isin(cut_name)]\n",
    "gpsdf=gpsdf.reset_index(drop=True)\n",
    "print('finished.........')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#清洗训练数据(针对标签的清洗，因为有很多运单中间大量停船过程)\n",
    "grouped=gpsdf.groupby('loadingOrder')\n",
    "cnt_maxtime=[]\n",
    "reserve_name=[]\n",
    "for name,group in grouped:\n",
    "    group=group.reset_index(drop=True)\n",
    "    time_dif=group['timestamp'].diff(1).dt.total_seconds()//3600#小时为单位\n",
    "    time_dif=time_dif.values[1:]\n",
    "    if len(time_dif)<50:\n",
    "        reserve_name.append(name)\n",
    "        continue\n",
    "    cnt_maxtime.append(np.max(time_dif))\n",
    "    if np.max(time_dif)<10:#跳跃小于10个小时的用于训练\n",
    "        reserve_name.append(name)\n",
    "    #break\n",
    "gpsdf=gpsdf[gpsdf['loadingOrder'].isin(reserve_name)]\n",
    "gpsdf=gpsdf.reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "正在构造训练数据\n",
      "1000\n",
      "2000\n",
      "3000\n",
      "构造训练特征所花费时间165.214s\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "import random\n",
    "from geopy.distance import geodesic\n",
    "#\n",
    "def cut_zero_end(data):\n",
    "    for i in range(len(data)-1,0,-1):\n",
    "        if data[i]!=0:\n",
    "            break\n",
    "    return i+1\n",
    "def cut_zero_start(data):\n",
    "    for i in range(len(data)):\n",
    "        if data[i]!=0:\n",
    "            break\n",
    "    return i-1\n",
    "#\n",
    "def convert_name_xy(name):#输入港口名称\n",
    "    port_name=port[port['TRANS_NODE_NAME'].isin([name])].reset_index()\n",
    "    return port_name['LONGITUDE'][0],port_name['LATITUDE'][0]#返回港口经纬度\n",
    "def cal_turn_dis(portNames):\n",
    "    xx=[]\n",
    "    yy=[]\n",
    "    dis=0\n",
    "    lon_dis=0\n",
    "    lat_dis=0\n",
    "    dis_sqrt=0\n",
    "    for name in portNames:\n",
    "        xx.append(convert_name_xy(name)[0])\n",
    "        yy.append(convert_name_xy(name)[1])\n",
    "    for i in range(1,len(xx)):\n",
    "        dis+=geodesic((yy[i-1],xx[i-1]), (yy[i],xx[i])).km\n",
    "        lon_dis+=abs(xx[i]-xx[i-1])\n",
    "        lat_dis+=abs(yy[i]-yy[i-1])\n",
    "        dis_sqrt+=np.sqrt(abs(xx[i]-xx[i-1])**2+abs(yy[i]-yy[i-1])**2)\n",
    "    return dis,lon_dis,lat_dis,dis_sqrt\n",
    "    \n",
    "def get_train_feature(df,bottom,top):\n",
    "    #\n",
    "    data=list(df['speed'])\n",
    "    length=len(df)\n",
    "    cut_start=int(length*bottom)\n",
    "    cut_end=int(length*top)\n",
    "    df=df[cut_start:cut_end].reset_index(drop=True)\n",
    "    if len(df)<10:\n",
    "        return [0 for i in range(38)]\n",
    "    feature=[]\n",
    "    length=len(df)\n",
    "    sx=df['longitude'][0]\n",
    "    sy=df['latitude'][0]\n",
    "    ex=df['longitude'][length-1]\n",
    "    ey=df['latitude'][length-1]\n",
    "    \n",
    "    dis=geodesic((sy,sx), (ey,ex)).km\n",
    "    lon_dis=abs(ex-sx)\n",
    "    lat_dis=abs(ey-sy)\n",
    "    dis_sqrt=np.sqrt(lon_dis*lon_dis+lat_dis*lat_dis)\n",
    "     \n",
    "    label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    #下面开始截断\n",
    "    cut_ratio=0.5\n",
    "    df=df[:int(length*cut_ratio)]\n",
    "    \n",
    "    length=len(df)\n",
    "    dsx=df['longitude'][0]\n",
    "    dsy=df['latitude'][0]\n",
    "    dex=df['longitude'][length-1]\n",
    "    dey=df['latitude'][length-1]\n",
    "    cal_dis=geodesic((dsy,dsx), (dey,dex)).km#截取出来的一段距离\n",
    "    cut_label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    \n",
    "    cal_speed=cal_dis/(cut_label+0.1)\n",
    "    df['lat_diff']=df['latitude'].diff(1)\n",
    "    df['lon_diff']=df['longitude'].diff(1)\n",
    "    df['k']=df['lat_diff']/df['lon_diff']\n",
    "    #\n",
    "    df['speed_diff'] = df['speed'].diff(1)#速度变化量\n",
    "    df['diff_minutes'] =df['timestamp'].diff(1).dt.total_seconds() / 60#记录之间的间隔时间(单位:s)\n",
    "    #\n",
    "    k_1_4=df['k'].quantile(0.25)\n",
    "    k_median=df['k'].quantile(0.5)\n",
    "    k_3_4=df['k'].quantile(0.75)\n",
    "    #在所有的记录中，多少记录是停船状态\n",
    "    #df['anchor'] = ((df['lat_diff'] <= 0.03) & (df['lon_diff'] <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] <= 10)).astype(int)\n",
    "    df['anchor'] = ((df['lat_diff'].abs() <= 0.03) & (df['lon_diff'].abs() <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] >= 10)).astype(int)\n",
    "\n",
    "    anchor_cnt = df['anchor'].sum()\n",
    "    anchor_ratio = anchor_cnt / len(df)\n",
    "    #\n",
    "    lat_1_4=df['latitude'].quantile(0.25)\n",
    "    lat_3_4=df['latitude'].quantile(0.75)\n",
    "    lat_min=df['latitude'].min()\n",
    "    lat_max=df['latitude'].max()\n",
    "    lat_mean=df['latitude'].mean()\n",
    "    lat_median=df['latitude'].median()\n",
    "    #\n",
    "    lon_1_4=df['longitude'].quantile(0.25)\n",
    "    lon_3_4=df['longitude'].quantile(0.75)\n",
    "    longitude_1_4=df['longitude'].quantile(0.25)\n",
    "    longitude_3_4=df['longitude'].quantile(0.75)\n",
    "    lon_min=df['longitude'].min()\n",
    "    lon_max=df['longitude'].max()\n",
    "    lon_mean=df['longitude'].mean()\n",
    "    lon_median=df['longitude'].median()\n",
    "    #\n",
    "    speed_1_4=df['speed'].quantile(0.25)\n",
    "    speed_3_4=df['speed'].quantile(0.75)\n",
    "    speed_max=df['speed'].max()\n",
    "    speed_mean=df['speed'].mean()\n",
    "    speed_median=df['speed'].median()\n",
    "    #\n",
    "    direction_1_4=df['direction'].quantile(0.25)\n",
    "    direction_3_4=df['direction'].quantile(0.75)\n",
    "    direction_min=df['direction'].min()\n",
    "    direction_max=df['direction'].max()\n",
    "    direction_mean=df['direction'].mean()\n",
    "    direction_median=df['direction'].median()\n",
    "    #\n",
    "    feature.append(k_1_4)\n",
    "    feature.append(k_3_4)\n",
    "    feature.append(k_median)\n",
    "    feature.append(anchor_cnt)\n",
    "    feature.append(anchor_ratio)\n",
    "    #\n",
    "    feature.append(lat_1_4)\n",
    "    feature.append(lat_3_4)\n",
    "    feature.append(lat_max)\n",
    "    feature.append(lat_min)\n",
    "    feature.append(lat_median)\n",
    "    feature.append(lat_mean)\n",
    "    #\n",
    "    feature.append(lon_1_4)\n",
    "    feature.append(lon_3_4)\n",
    "    feature.append(lon_max)\n",
    "    feature.append(lon_min)\n",
    "    feature.append(lon_median)\n",
    "    feature.append(lon_mean)\n",
    "    #\n",
    "    feature.append(speed_1_4)\n",
    "    feature.append(speed_3_4)\n",
    "    feature.append(speed_max)\n",
    "    feature.append(speed_median)\n",
    "    feature.append(speed_mean)\n",
    "    #\n",
    "    feature.append(direction_1_4)\n",
    "    feature.append(direction_3_4)\n",
    "    feature.append(direction_max)\n",
    "    feature.append(direction_min)\n",
    "    feature.append(direction_median)\n",
    "    feature.append(direction_mean)\n",
    "    #\n",
    "    feature.append(sx)\n",
    "    feature.append(sy)\n",
    "    feature.append(ex)\n",
    "    feature.append(ey)\n",
    "    feature.append(dis)\n",
    "    feature.append(lon_dis)\n",
    "    feature.append(lat_dis)\n",
    "    feature.append(cal_speed)\n",
    "    feature.append(dis_sqrt)\n",
    "    feature.append(label)\n",
    "\n",
    "    return feature\n",
    "#\n",
    "import random\n",
    "from geopy.distance import geodesic\n",
    "import time\n",
    "def make_train_data(df):\n",
    "    features=[]\n",
    "    grouped=df.groupby('loadingOrder')\n",
    "    #\n",
    "    start_time=time.time()\n",
    "    print('正在构造训练数据')\n",
    "    start_time=time.time()\n",
    "    #cuts=[(0.1,0.3),(0.2,0.5),(0.4,0.7),(0.5,0.8),(0.6,0.9),(0.25,0.75),(0.15,0.85),(0.2,0.8)]\n",
    "    cuts=[(0.2,0.9),(0.1,0.8),(0.05,0.95)]\n",
    "    cnt=0\n",
    "    for name,group in grouped:\n",
    "        cnt+=1\n",
    "        if cnt%1000==0:\n",
    "            print(cnt)\n",
    "        sample_trace=group.reset_index(drop=True)\n",
    "        for bottom,top in cuts:\n",
    "            features.append(get_train_feature(sample_trace,bottom,top))\n",
    "    print(\"构造训练特征所花费时间%.3fs\"%(time.time()-start_time))\n",
    "    return features\n",
    "#\n",
    "train_features=make_train_data(gpsdf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察训练数据标签的分布\n",
    "- 最长时间:86.28858796296296 day\n",
    "- 最短时间:0.0 day\n",
    "- 平均时间:16.70094809971483 day\n",
    "\n",
    "## 而测试数据中已知的轨迹长度为：\n",
    "- 最长时间:16.88171296296296 day\n",
    "- 最短时间:0.046527777777777786 day\n",
    "- 平均时间:4.325498415081749 day\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "test_data_path='../R2 ATest 0711Clean.csv'\n",
    "df_test=pd.read_csv(test_data_path)\n",
    "df_test=get_data(df_test, mode='test')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "33.34361353710392"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "geodesic((22,114), (28.6,149.4)).km-3592.044777704557"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "#df_test[df_test['loadingOrder'].isin(['DH829189593918'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "SZ109188860665 1.0\n",
      "NH240192470616 3.0\n",
      "JB123387157454 3.0\n",
      "ZO975754571124 3.0\n",
      "DH829189593918 105.0\n",
      "80 105.0\n",
      "LE381377964668 68.0\n",
      "89 68.0\n",
      "ZX552539758501 1.0\n",
      "TB846768731403 4.0\n",
      "HQ193237808500 1.0\n",
      "QK696918637480 8.0\n"
     ]
    }
   ],
   "source": [
    "#判断onboard_time和第一条记录的时间是否相等\n",
    "#总共10个运单的onboard/第一条时间差距大于一个小时，大于一天的有两个运单\n",
    "#'DH829189593918':105h;'LE381377964668':68.0\n",
    "grouped=df_test.groupby('loadingOrder',sort=False)\n",
    "cnt=0\n",
    "for name,group in grouped:\n",
    "    group=group.reset_index(drop=True)\n",
    "    dft=pd.to_datetime(group['timestamp'] ).apply(lambda x: x.replace(tzinfo=None))\n",
    "    delta=(dft[:1][0]-group['onboardDate'][:1][0]).total_seconds()//3600\n",
    "    if delta!=0:\n",
    "        print(name,delta)#总共10个运单的onboard和第一条时间戳不一致\n",
    "    if name=='DH829189593918' or name=='LE381377964668':\n",
    "        print(cnt,delta)\n",
    "    cnt+=1\n",
    "#这里面的10个不一致的订单是需要最好减掉的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "\"\\nlen_list=[]\\ndelta=[]\\ngrouped=df_test.groupby('loadingOrder')\\nfor name,group in grouped:\\n    len_list.append(len(group))\\n    group=group.reset_index(drop=True)\\n    tmp=group['timestamp'].values\\n    delta.append(pd.Timedelta((tmp[-1]-tmp[1])).total_seconds()/3600/24)\\n    if len(group)<10:\\n        print(name)\\n\\nprint(np.min(len_list),np.mean(len_list),np.max(len_list))\\n    \\nprint(np.min(delta),np.mean(delta),np.max(delta))\\n\""
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''\n",
    "len_list=[]\n",
    "delta=[]\n",
    "grouped=df_test.groupby('loadingOrder')\n",
    "for name,group in grouped:\n",
    "    len_list.append(len(group))\n",
    "    group=group.reset_index(drop=True)\n",
    "    tmp=group['timestamp'].values\n",
    "    delta.append(pd.Timedelta((tmp[-1]-tmp[1])).total_seconds()/3600/24)\n",
    "    if len(group)<10:\n",
    "        print(name)\n",
    "\n",
    "print(np.min(len_list),np.mean(len_list),np.max(len_list))\n",
    "    \n",
    "print(np.min(delta),np.mean(delta),np.max(delta))\n",
    "'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "#sorted(len_list)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 测试数据:共94对(31对中间港口，最多中间港有14个)港口，219条运单，其中很多含有中间港口"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [],
   "source": [
    "def convert_name_xy(name):#输入港口名称\n",
    "    port_name=port[port['TRANS_NODE_NAME'].isin([name])].reset_index()\n",
    "    return port_name['LONGITUDE'][0],port_name['LATITUDE'][0]#返回港口经纬度\n",
    "#  \n",
    "start_x=[]#起点\n",
    "start_y=[]#起点\n",
    "end_x=[]#终点\n",
    "end_y=[]#终点\n",
    "#存储中间结果,避免重复计算\n",
    "temp_dic={}\n",
    "for value in df_test['TRANSPORT_TRACE']:\n",
    "    s_e=value.split('-')\n",
    "    start_port=s_e[0]\n",
    "    end_port=s_e[-1]\n",
    "    if start_port in temp_dic:\n",
    "        re=temp_dic[start_port]\n",
    "    else:\n",
    "        re=convert_name_xy(start_port)\n",
    "        temp_dic[start_port]=re\n",
    "    start_x.append(re[0])\n",
    "    start_y.append(re[1])\n",
    "    if end_port in temp_dic:\n",
    "        re=temp_dic[end_port]\n",
    "    else:\n",
    "        re=convert_name_xy(end_port)\n",
    "        temp_dic[end_port]=re\n",
    "    end_x.append(re[0])\n",
    "    end_y.append(re[1])\n",
    "df_test['start_x']=start_x\n",
    "df_test['start_y']=start_y\n",
    "df_test['end_x']=end_x\n",
    "df_test['end_y']=end_y"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "finished1...\n",
      "正在构造测试数据........\n",
      "构造测试数据所花费时间2.729s\n"
     ]
    }
   ],
   "source": [
    "import time\n",
    "from geopy.distance import geodesic\n",
    "#\n",
    "def cal_turn_dis(portNames):\n",
    "    xx=[]\n",
    "    yy=[]\n",
    "    dis=0\n",
    "    lon_dis=0\n",
    "    lat_dis=0\n",
    "    dis_sqrt=0\n",
    "    for name in portNames:\n",
    "        xx.append(convert_name_xy(name)[0])\n",
    "        yy.append(convert_name_xy(name)[1])\n",
    "    for i in range(1,len(xx)):\n",
    "        dis+=geodesic((yy[i-1],xx[i-1]), (yy[i],xx[i])).km\n",
    "        lon_dis+=abs(xx[i]-xx[i-1])\n",
    "        lat_dis+=abs(yy[i]-yy[i-1])\n",
    "        dis_sqrt+=np.sqrt(abs(xx[i]-xx[i-1])**2+abs(yy[i]-yy[i-1])**2)\n",
    "    return dis,lon_dis,lat_dis,dis_sqrt\n",
    "def get_test_feature(df,name):\n",
    "    #dis,lon_dis,lat_dis,dis_sqrt=cal_turn_dis(portNames)\n",
    "    df.sort_values(['timestamp'], inplace=True)\n",
    "    df=df.reset_index(drop=True)\n",
    "    feature=[]\n",
    "    length=len(df)\n",
    "    dsx=df['longitude'][0]\n",
    "    dsy=df['latitude'][0]\n",
    "    dex=df['longitude'][length-1]\n",
    "    dey=df['latitude'][length-1]\n",
    "    #\n",
    "    sx=df['longitude'][0]\n",
    "    sy=df['latitude'][0]\n",
    "    ex=df['end_x'][length-1]\n",
    "    ey=df['end_y'][length-1]\n",
    "    \n",
    "    dis=geodesic((sy,sx), (ey,ex)).km\n",
    "    lon_dis=abs(ex-sx)\n",
    "    lat_dis=abs(ey-sy)\n",
    "    dis_sqrt=np.sqrt(lon_dis*lon_dis+lat_dis*lat_dis)\n",
    "    \n",
    "    label=(df['timestamp'][length-1]-df['timestamp'][0]).total_seconds()/3600\n",
    "    cal_dis=geodesic((dsy,dsx), (dey,dex)).km\n",
    "    cal_speed=cal_dis/(label+0.1)\n",
    "    df['lat_diff']=df['latitude'].diff(1)\n",
    "    df['lon_diff']=df['longitude'].diff(1)\n",
    "    df['k']=df['lat_diff']/df['lon_diff']\n",
    "    #\n",
    "    df['speed_diff'] = df['speed'].diff(1)#速度变化量\n",
    "    df['diff_minutes'] =df['timestamp'].diff(1).dt.total_seconds() / 60#记录之间的间隔时间(单位:s)\n",
    "    #\n",
    "    k_1_4=df['k'].quantile(0.25)\n",
    "    k_median=df['k'].quantile(0.5)\n",
    "    k_3_4=df['k'].quantile(0.75)\n",
    "    #在所有的记录中，多少记录是停船状态\n",
    "    df['anchor'] = ((df['lat_diff'].abs() <= 0.03) & (df['lon_diff'].abs() <= 0.03)& (df['speed_diff'] <= 0.3) & (df['diff_minutes'] >= 15)).astype(int)\n",
    "\n",
    "    anchor_cnt = df['anchor'].sum()\n",
    "    anchor_ratio = anchor_cnt / len(df)\n",
    "    #\n",
    "    lat_1_4=df['latitude'].quantile(0.25)\n",
    "    lat_3_4=df['latitude'].quantile(0.75)\n",
    "    lat_min=df['latitude'].min()\n",
    "    lat_max=df['latitude'].max()\n",
    "    lat_mean=df['latitude'].mean()\n",
    "    lat_median=df['latitude'].median()\n",
    "    #\n",
    "    lon_1_4=df['longitude'].quantile(0.25)\n",
    "    lon_3_4=df['longitude'].quantile(0.75)\n",
    "    longitude_1_4=df['longitude'].quantile(0.25)\n",
    "    longitude_3_4=df['longitude'].quantile(0.75)\n",
    "    lon_min=df['longitude'].min()\n",
    "    lon_max=df['longitude'].max()\n",
    "    lon_mean=df['longitude'].mean()\n",
    "    lon_median=df['longitude'].median()\n",
    "    #\n",
    "    speed_1_4=df['speed'].quantile(0.25)\n",
    "    speed_3_4=df['speed'].quantile(0.75)\n",
    "    speed_min=df['speed'].min()\n",
    "    speed_max=df['speed'].max()\n",
    "    speed_mean=df['speed'].mean()\n",
    "    speed_median=df['speed'].median()\n",
    "    #\n",
    "    direction_1_4=df['direction'].quantile(0.25)\n",
    "    direction_3_4=df['direction'].quantile(0.75)\n",
    "    direction_min=df['direction'].min()\n",
    "    direction_max=df['direction'].max()\n",
    "    direction_mean=df['direction'].mean()\n",
    "    direction_median=df['direction'].median()\n",
    "    #\n",
    "    feature.append(name)\n",
    "    feature.append(k_1_4)\n",
    "    feature.append(k_3_4)\n",
    "    feature.append(k_median)\n",
    "    feature.append(anchor_cnt)\n",
    "    feature.append(anchor_ratio)\n",
    "    #\n",
    "    feature.append(lat_1_4)\n",
    "    feature.append(lat_3_4)\n",
    "    feature.append(lat_max)\n",
    "    feature.append(lat_min)\n",
    "    feature.append(lat_median)\n",
    "    feature.append(lat_mean)\n",
    "    #\n",
    "    feature.append(lon_1_4)\n",
    "    feature.append(lon_3_4)\n",
    "    feature.append(lon_max)\n",
    "    feature.append(lon_min)\n",
    "    feature.append(lon_median)\n",
    "    feature.append(lon_mean)\n",
    "    #\n",
    "    feature.append(speed_1_4)\n",
    "    feature.append(speed_3_4)\n",
    "    feature.append(speed_max)\n",
    "    feature.append(speed_median)\n",
    "    feature.append(speed_mean)\n",
    "    #\n",
    "    feature.append(direction_1_4)\n",
    "    feature.append(direction_3_4)\n",
    "    feature.append(direction_max)\n",
    "    feature.append(direction_min)\n",
    "    feature.append(direction_median)\n",
    "    feature.append(direction_mean)\n",
    "    #\n",
    "    feature.append(sx)\n",
    "    feature.append(sy)\n",
    "    feature.append(ex)\n",
    "    feature.append(ey)\n",
    "    feature.append(dis)\n",
    "    feature.append(lon_dis)\n",
    "    feature.append(lat_dis)\n",
    "    feature.append(cal_speed)\n",
    "    feature.append(dis_sqrt)\n",
    "    feature.append(label)\n",
    "    \n",
    "    return feature\n",
    "#\n",
    "import random\n",
    "from geopy.distance import geodesic\n",
    "import time\n",
    "def make_test_data(df):\n",
    "    features=[]\n",
    "    grouped=df.groupby('loadingOrder',sort=False)\n",
    "    print('finished1...')\n",
    "    #\n",
    "    start_time=time.time()\n",
    "    print('正在构造测试数据........')\n",
    "    start_time=time.time()\n",
    "    for name,group in grouped:\n",
    "        #\n",
    "        sample_trace=group.reset_index(drop=True)\n",
    "        features.append(get_test_feature(sample_trace,name))\n",
    "    print(\"构造测试数据所花费时间%.3fs\"%(time.time()-start_time))\n",
    "    return features\n",
    "#下面只需要保留原始数据cut之前的数据\n",
    "test_features=make_test_data(df_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [],
   "source": [
    "train=DataFrame(train_features)\n",
    "train.columns=['k_1_4','k_3_4','k_median','anchor_cnt','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt','label']\n",
    "#train=train[train['label']>0.02*24]#筛选训练样本，0.05天以内的不予考虑\n",
    "#train=train[train['label']<80*24]\n",
    "train.shape\n",
    "test=DataFrame(test_features)\n",
    "test.columns=['loadingOrder','k_1_4','k_3_4','k_median','anchor_cnt','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt','label']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最长时间:47.644189814814816 day\n",
      "最短时间:0.05611111111111111 day\n",
      "平均时间:12.61180331909686 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "train_label=np.array(train['label']/24)\n",
    "##观察下预测结果的分布\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"最长时间:%s day\"%(np.max(train_label)))\n",
    "print(\"最短时间:%s day\"%np.min(train_label))\n",
    "print(\"平均时间:%s day\"%np.mean(train_label))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(train_label)),int(max(train_label)),int(max(train_label)))\n",
    "plt.hist(train_label,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.title('train lables')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察下测试集中给了多少天的轨迹数据\n",
    "- 最长时间:16.88171296296296 day\n",
    "- 最短时间:0.046527777777777786 day\n",
    "- 平均时间:4.325498415081749 day"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "最长时间:26.122685185185187 day\n",
      "最短时间:0.004050925925925926 day\n",
      "平均时间:2.532971064814815 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#观察下测试集中给了多少天的轨迹数据\n",
    "test_label=np.array(test['label']/24)\n",
    "##观察下预测结果的分布\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"最长时间:%s day\"%(np.max(test_label)))\n",
    "print(\"最短时间:%s day\"%np.min(test_label))\n",
    "print(\"平均时间:%s day\"%np.mean(test_label))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(test_label)),int(max(test_label)),int(max(test_label)))\n",
    "plt.hist(test_label,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.title('test lables')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 搭建训练模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## xgb+lgb"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [],
   "source": [
    "import xgboost as xgb\n",
    "import lightgbm as lgb\n",
    "from sklearn.ensemble import RandomForestRegressor\n",
    "from sklearn.model_selection import StratifiedKFold\n",
    "from sklearn.model_selection import train_test_split\n",
    "import pandas as pd\n",
    "from tqdm import tqdm\n",
    "import numpy as np\n",
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.metrics import mean_squared_error,explained_variance_score\n",
    "from sklearn.model_selection import KFold\n",
    "from matplotlib import pyplot as plt\n",
    "#from featexp import get_univariate_plots#用于特征筛选，需要先安装featexp\n",
    "%matplotlib inline\n",
    "import warnings\n",
    "warnings.filterwarnings('ignore')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((10842, 36), (200, 36))"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#\n",
    "features =['k_1_4','k_3_4','k_median','anchor_ratio','lat_1_4','lat_3_4','lat_max','lat_min'\n",
    "    ,'lat_median','lat_mean','lon_1_4','lon_3_4','lon_max','lon_min','lon_median','lon_mean'\n",
    "    'speed_1_4','speed_3_4','speed_min','speed_max','speed_median','speed_mean','direction_1_4','direction_3_4','direction_max'\n",
    "    ,'direction_min','direction_median','direction_mean','sx','sy','ex','ey'\n",
    "    ,'dis','lon_dis','lat_dis','cal_speed','dis_sqrt']\n",
    "train_data=train[features]\n",
    "test_data=test[features]\n",
    "y=train['label']\n",
    "train_data.shape,test_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7844.165809631035,\n",
       " 97.0799578083976,\n",
       " 91.25515196500001,\n",
       " 18.731318885,\n",
       " 20.60718950450928,\n",
       " 22.087051927824724)"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(test_data['dis']),np.mean(test_data['dis_sqrt']),np.mean(test_data['lon_dis']),np.mean(test_data['lat_dis']),np.mean(test_data['cal_speed']),np.mean(test_data['speed_mean'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(7101.583593005861,\n",
       " 81.06784493329286,\n",
       " 74.88407026978417,\n",
       " 22.939516828537172,\n",
       " 23.420169774774276,\n",
       " 24.115908892072348)"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.mean(train_data['dis']),np.mean(train_data['dis_sqrt']),np.mean(train_data['lon_dis']),np.mean(train_data['lat_dis']),np.mean(train_data['cal_speed']),np.mean(train_data['speed_mean'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [],
   "source": [
    "#features =['k_median','speed_mean','direction_mean','dis','lon_dis','lat_dis','cal_speed','dis_sqrt']\n",
    "#train_data=train[features]\n",
    "#test_data=test[features]\n",
    "#y=train['label']\n",
    "#train_data.shape,test_data.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [],
   "source": [
    "#featuresx=[ 'dis','lon_dis','lat_dis','cal_speed']\n",
    "#train_data=train_data[featuresx]\n",
    "#test_data=test_data[featuresx]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'\\ndef pre_process(data):\\n    data=data.apply( lambda x: (x - x.mean()) / (x.std()))\\n    data=data.fillna(0.)\\n    return data\\n\\ntrain_test=pd.concat((train_data,test_data),axis=0).reset_index(drop=True)\\ntrain_test=pre_process(train_test)\\ntrain_data=train_test[:train_data.shape[0]].reset_index(drop=True)\\ntest_data=train_test[train_data.shape[0]:].reset_index(drop=True)\\n'"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "'''\n",
    "def pre_process(data):\n",
    "    data=data.apply( lambda x: (x - x.mean()) / (x.std()))\n",
    "    data=data.fillna(0.)\n",
    "    return data\n",
    "\n",
    "train_test=pd.concat((train_data,test_data),axis=0).reset_index(drop=True)\n",
    "train_test=pre_process(train_test)\n",
    "train_data=train_test[:train_data.shape[0]].reset_index(drop=True)\n",
    "test_data=train_test[train_data.shape[0]:].reset_index(drop=True)\n",
    "'''\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_train,x_test,y_train,y_test=train_test_split(train_data,y,test_size=0.1,random_state=2020)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "((9757, 36), (1085, 36))"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x_train.shape,x_test.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val_mse: 2.177728e+02\n",
      "train_mse: 1.579003e+01\n"
     ]
    }
   ],
   "source": [
    "llf=gbm = lgb.LGBMRegressor(objective='regression',\n",
    "                        num_leaves=31,\n",
    "                        learning_rate=0.1,\n",
    "                        n_estimators=500)\n",
    "\n",
    "llf.fit(x_train,y_train)\n",
    "\n",
    "llf_val_mse=mean_squared_error(y_test,llf.predict(x_test))\n",
    "llf_train_mse=mean_squared_error(y_train,llf.predict(x_train))\n",
    "print('val_mse:','{:e}'.format(llf_val_mse))\n",
    "print('train_mse:','{:e}'.format(llf_train_mse))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "val_mse: 2.515409e+02\n",
      "train_mse: 1.256380e+01\n"
     ]
    }
   ],
   "source": [
    "#\n",
    "other_params = {'learning_rate': 0.05, 'n_estimators': 500, 'max_depth': 7, 'min_child_weight': 1, 'seed': 0,\n",
    "                'subsample': 0.8, 'colsample_bytree': 0.8, 'gamma': 0, 'reg_alpha': 0, 'reg_lambda': 1}\n",
    "\n",
    "xlf = xgb.XGBRegressor(**other_params)\n",
    "xlf.fit(x_train,y_train)\n",
    "xlf_val_mse=mean_squared_error(y_test,xlf.predict(x_test))\n",
    "xlf_train_mse=mean_squared_error(y_train,xlf.predict(x_train))\n",
    "print('val_mse:','{:e}'.format(xlf_val_mse))\n",
    "print('train_mse:','{:e}'.format(xlf_train_mse))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "第1次验证mse误差为214.293933\n",
      "第2次验证mse误差为213.473831\n",
      "第3次验证mse误差为245.788997\n",
      "第4次验证mse误差为191.441494\n",
      "第5次验证mse误差为346.476270\n",
      "平均验证误差242.294905\n"
     ]
    }
   ],
   "source": [
    "details=[]\n",
    "answers=np.zeros(len(test))\n",
    "n_splits=5\n",
    "cnt=0\n",
    "mean_error=0\n",
    "sk=KFold(n_splits=n_splits,shuffle=True,random_state=2020)\n",
    "for train_k,test_k in sk.split(train_data,y):\n",
    "    cnt+=1\n",
    "    x_train=train_data.iloc[train_k]\n",
    "    y_train=y.iloc[train_k]\n",
    "    x_test=train_data.iloc[test_k]\n",
    "    y_test=y.iloc[test_k]\n",
    "    \n",
    "    xlf.fit(x_train,y_train)\n",
    "    pred_xgb=xlf.predict(x_test)\n",
    "    weight_xgb=mean_squared_error(y_test,pred_xgb)\n",
    "    \n",
    "    llf.fit(x_train,y_train)\n",
    "    pred_llf=llf.predict(x_test)\n",
    "    weight_lgb=mean_squared_error(y_test,pred_llf)\n",
    "    \n",
    "    \n",
    "    prob_xgb=xlf.predict(x_test)\n",
    "    prob_lgb=llf.predict(x_test)\n",
    "    \n",
    "    errors=[]\n",
    "    ij=[]\n",
    "    weight=np.arange(0,1.05,0.1)\n",
    "    for i,item in enumerate(weight):\n",
    "        prob_end=prob_xgb*item+prob_lgb*(1-item)\n",
    "        error=mean_squared_error(y_test,prob_end)\n",
    "        errors.append(error)\n",
    "        ij.append((item,1-item))\n",
    "    \n",
    "    ii=ij[np.argmin(errors)][0]\n",
    "    jj=ij[np.argmin(errors)][1]\n",
    "    \n",
    "    details.append(min(errors))\n",
    "    details.append(weight_xgb)\n",
    "    details.append(weight_lgb)\n",
    "    details.append(ii)\n",
    "    details.append(jj)\n",
    "\n",
    "    print(\"第%d次验证mse误差为%f\" %(cnt,min(errors)))\n",
    "   \n",
    "    test_xgb=xlf.predict(test_data)\n",
    "    test_lgb=llf.predict(test_data)\n",
    "    ans=test_xgb*ii+test_lgb*jj\n",
    "    ans=test_lgb\n",
    "    mean_error+=min(errors)/n_splits\n",
    "    answers+=ans/n_splits\n",
    "print(\"平均验证误差%f\"%mean_error)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察训练/验证过程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>test_end_score</th>\n",
       "      <th>xgboost</th>\n",
       "      <th>lightgbm</th>\n",
       "      <th>weight_xgboost</th>\n",
       "      <th>weight_lightgbm</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>214.293933</td>\n",
       "      <td>242.775065</td>\n",
       "      <td>221.744505</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>213.473831</td>\n",
       "      <td>243.528864</td>\n",
       "      <td>227.422803</td>\n",
       "      <td>0.4</td>\n",
       "      <td>0.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>245.788997</td>\n",
       "      <td>280.928660</td>\n",
       "      <td>253.622751</td>\n",
       "      <td>0.3</td>\n",
       "      <td>0.7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>191.441494</td>\n",
       "      <td>209.792792</td>\n",
       "      <td>203.475570</td>\n",
       "      <td>0.4</td>\n",
       "      <td>0.6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>346.476270</td>\n",
       "      <td>404.654672</td>\n",
       "      <td>348.753245</td>\n",
       "      <td>0.2</td>\n",
       "      <td>0.8</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   test_end_score     xgboost    lightgbm  weight_xgboost  weight_lightgbm\n",
       "0      214.293933  242.775065  221.744505             0.3              0.7\n",
       "1      213.473831  243.528864  227.422803             0.4              0.6\n",
       "2      245.788997  280.928660  253.622751             0.3              0.7\n",
       "3      191.441494  209.792792  203.475570             0.4              0.6\n",
       "4      346.476270  404.654672  348.753245             0.2              0.8"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#观察训练/验证过程\n",
    "df=pd.DataFrame(np.array(details).reshape(int(len(details)/5),5)\n",
    "                ,columns=['test_end_score','xgboost','lightgbm','weight_xgboost','weight_lightgbm',])\n",
    "df"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 观察预测结果的分布"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "预测的最长时间:34.22255558602563 day\n",
      "预测的最短时间:0.36308368925485907 day\n",
      "预测的平均时间:13.658684069627926 day\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "##观察下预测结果的分布\n",
    "re_day=answers/24\n",
    "name_cnt={}#{订单号：对应的事件记录条数}\n",
    "tmp=[]\n",
    "print(\"预测的最长时间:%s day\"%(np.max(re_day)))\n",
    "print(\"预测的最短时间:%s day\"%np.min(re_day))\n",
    "print(\"预测的平均时间:%s day\"%np.mean(re_day))\n",
    "#画出分布直方图\n",
    "import pylab as plt \n",
    "bins = np.linspace(int(min(re_day)),int(max(re_day)),int(max(re_day)))\n",
    "plt.hist(re_day,bins)\n",
    "plt.xlabel('ETA of orders ')\n",
    "plt.ylabel('Number of orders')\n",
    "plt.show()\n",
    "plt.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "answer与ans1_5k的mse:6963\n",
      "answer与ans_10k的mse:7514\n",
      "ans1_5k与ans_10k的mse:4251\n"
     ]
    }
   ],
   "source": [
    "#\n",
    "ans1_5k=np.load('../submit/1_5k.npy')\n",
    "ans_10k=np.load('../submit/ans_10k.npy')\n",
    "print(\"answer与ans1_5k的mse:%.0f\"%mean_squared_error(answers,ans1_5k))\n",
    "print(\"answer与ans_10k的mse:%.0f\"%mean_squared_error(answers,ans_10k))\n",
    "print(\"ans1_5k与ans_10k的mse:%.0f\"%mean_squared_error(ans1_5k,ans_10k))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {},
   "outputs": [],
   "source": [
    "del_index=[5,\n",
    "30,\n",
    "31,\n",
    "41,\n",
    "50,\n",
    "58,\n",
    "131,\n",
    "134,\n",
    "144,\n",
    "150,\n",
    "153,\n",
    "154,\n",
    "156,\n",
    "157,\n",
    "164,\n",
    "165,\n",
    "172,\n",
    "179,\n",
    "192]\n",
    "ans_10k=np.load('../submit/rxd_pre_6k9.npy')\n",
    "ans_10k=np.delete(ans_10k, del_index)\n",
    "np.save('../submit/rxd_6k9.npy',ans_10k)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "251.5655858583791 3\n",
      "250.81585581082243 5\n",
      "237.2369642572835 66\n",
      "224.3347031242829 91\n",
      "250.6704997434813 93\n",
      "228.55973590753092 99\n",
      "292.0004513617529 127\n",
      "209.91981954293246 129\n",
      "300.51079097248885 133\n",
      "278.30592640138684 134\n",
      "315.6826686469656 135\n",
      "224.6017114997566 174\n"
     ]
    }
   ],
   "source": [
    "deltaSub=abs(ans1_5k-answers)\n",
    "for i in range(len(deltaSub)):\n",
    "    if deltaSub[i]>200:\n",
    "        print(deltaSub[i],i)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(154.19949349357455, 454.2184355555555)"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "answers[143],dw4k[143]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'JV646262964847'"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "uniq_order=df_test['loadingOrder'].unique()\n",
    "uniq_order[143]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {},
   "outputs": [],
   "source": [
    "def tmp_func():\n",
    "    grouped=df_test.groupby('loadingOrder',sort=False)\n",
    "    cnt=0\n",
    "    for name,group in grouped:\n",
    "        group=group.reset_index(drop=True)\n",
    "        if group"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3.3197652868830527"
      ]
     },
     "execution_count": 97,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "geodesic((16,67), (16.03,67)).km"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loadingOrder</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>longitude</th>\n",
       "      <th>latitude</th>\n",
       "      <th>speed</th>\n",
       "      <th>direction</th>\n",
       "      <th>carrierName</th>\n",
       "      <th>vesselMMSI</th>\n",
       "      <th>onboardDate</th>\n",
       "      <th>TRANSPORT_TRACE</th>\n",
       "      <th>temp_timestamp</th>\n",
       "      <th>start_x</th>\n",
       "      <th>start_y</th>\n",
       "      <th>end_x</th>\n",
       "      <th>end_y</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>39291</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 00:02:43+00:00</td>\n",
       "      <td>-99.905583</td>\n",
       "      <td>16.499700</td>\n",
       "      <td>33.0</td>\n",
       "      <td>11200.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T00:02:43.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39359</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 00:06:31+00:00</td>\n",
       "      <td>-99.887150</td>\n",
       "      <td>16.492317</td>\n",
       "      <td>33.0</td>\n",
       "      <td>11200.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T00:06:31.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39391</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 00:08:44+00:00</td>\n",
       "      <td>-99.876167</td>\n",
       "      <td>16.487900</td>\n",
       "      <td>33.0</td>\n",
       "      <td>11200.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T00:08:44.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39454</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 00:12:38+00:00</td>\n",
       "      <td>-99.857150</td>\n",
       "      <td>16.480300</td>\n",
       "      <td>34.0</td>\n",
       "      <td>11200.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T00:12:38.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>39525</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 00:16:31+00:00</td>\n",
       "      <td>-99.838050</td>\n",
       "      <td>16.472567</td>\n",
       "      <td>33.0</td>\n",
       "      <td>11300.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T00:16:31.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58304</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 23:14:32+00:00</td>\n",
       "      <td>-93.550950</td>\n",
       "      <td>13.133417</td>\n",
       "      <td>32.0</td>\n",
       "      <td>12000.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T23:14:32.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58554</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 23:39:14+00:00</td>\n",
       "      <td>-93.444233</td>\n",
       "      <td>13.073267</td>\n",
       "      <td>32.0</td>\n",
       "      <td>12000.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T23:39:14.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58591</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 23:41:38+00:00</td>\n",
       "      <td>-93.433967</td>\n",
       "      <td>13.067400</td>\n",
       "      <td>32.0</td>\n",
       "      <td>12000.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T23:41:38.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58688</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 23:54:13+00:00</td>\n",
       "      <td>-93.379583</td>\n",
       "      <td>13.036633</td>\n",
       "      <td>32.0</td>\n",
       "      <td>11900.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T23:54:13.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58697</th>\n",
       "      <td>JV646262964847</td>\n",
       "      <td>2020-04-28 23:54:54+00:00</td>\n",
       "      <td>-93.376667</td>\n",
       "      <td>13.034967</td>\n",
       "      <td>32.0</td>\n",
       "      <td>12000.0</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>V9073335880</td>\n",
       "      <td>2020-04-28 00:02:43</td>\n",
       "      <td>CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...</td>\n",
       "      <td>2020-04-28T23:54:54.000Z</td>\n",
       "      <td>113.863058</td>\n",
       "      <td>22.559462</td>\n",
       "      <td>-61.512151</td>\n",
       "      <td>10.642862</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>158 rows × 15 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         loadingOrder                 timestamp  longitude   latitude  speed  \\\n",
       "39291  JV646262964847 2020-04-28 00:02:43+00:00 -99.905583  16.499700   33.0   \n",
       "39359  JV646262964847 2020-04-28 00:06:31+00:00 -99.887150  16.492317   33.0   \n",
       "39391  JV646262964847 2020-04-28 00:08:44+00:00 -99.876167  16.487900   33.0   \n",
       "39454  JV646262964847 2020-04-28 00:12:38+00:00 -99.857150  16.480300   34.0   \n",
       "39525  JV646262964847 2020-04-28 00:16:31+00:00 -99.838050  16.472567   33.0   \n",
       "...               ...                       ...        ...        ...    ...   \n",
       "58304  JV646262964847 2020-04-28 23:14:32+00:00 -93.550950  13.133417   32.0   \n",
       "58554  JV646262964847 2020-04-28 23:39:14+00:00 -93.444233  13.073267   32.0   \n",
       "58591  JV646262964847 2020-04-28 23:41:38+00:00 -93.433967  13.067400   32.0   \n",
       "58688  JV646262964847 2020-04-28 23:54:13+00:00 -93.379583  13.036633   32.0   \n",
       "58697  JV646262964847 2020-04-28 23:54:54+00:00 -93.376667  13.034967   32.0   \n",
       "\n",
       "       direction carrierName   vesselMMSI         onboardDate  \\\n",
       "39291    11200.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "39359    11200.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "39391    11200.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "39454    11200.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "39525    11300.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "...          ...         ...          ...                 ...   \n",
       "58304    12000.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "58554    12000.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "58591    12000.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "58688    11900.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "58697    12000.0      RWHZVZ  V9073335880 2020-04-28 00:02:43   \n",
       "\n",
       "                                         TRANSPORT_TRACE  \\\n",
       "39291  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "39359  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "39391  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "39454  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "39525  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "...                                                  ...   \n",
       "58304  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "58554  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "58591  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "58688  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "58697  CNSHK-HKHKG-TWKHH-CNNBG-CNSHA-CNTAO-KRPUS-MXZL...   \n",
       "\n",
       "                 temp_timestamp     start_x    start_y      end_x      end_y  \n",
       "39291  2020-04-28T00:02:43.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "39359  2020-04-28T00:06:31.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "39391  2020-04-28T00:08:44.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "39454  2020-04-28T00:12:38.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "39525  2020-04-28T00:16:31.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "...                         ...         ...        ...        ...        ...  \n",
       "58304  2020-04-28T23:14:32.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "58554  2020-04-28T23:39:14.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "58591  2020-04-28T23:41:38.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "58688  2020-04-28T23:54:13.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "58697  2020-04-28T23:54:54.000Z  113.863058  22.559462 -61.512151  10.642862  \n",
       "\n",
       "[158 rows x 15 columns]"
      ]
     },
     "execution_count": 114,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df_test[df_test['loadingOrder'].isin(['JV646262964847'])]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 特征重要度筛选"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1296x648 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(18,9))\n",
    "lgb.plot_importance(llf,max_num_features=16)\n",
    "plt.title('lightgbm——feature_importances_',fontsize=14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 1296x648 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(18,9))\n",
    "xgb.plot_importance(xlf,max_num_features=16,importance_type='weight')#'gain'可以换成weight\n",
    "plt.title('xgboost——feature_importances_',fontsize=14)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Text(0.5, 1.0, 'xgboost&lightgbm——feature_importances_')"
      ]
     },
     "execution_count": 88,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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27ZtC6aZNMmKF7SZ6NevMveLBx98UGeffbYkqU2bNpo8ebL23HPPnGkff/xxnXTSSZKkli1bauLEiTr00EMbpHvmmWd05plnau7cuTnzadOmjW699VYdc8wx2nbbbSVJvXr1Um1tbYO0tbW1GWn+/e9/66KLLtLIkSPzbtMOO+ygxx57TLvs0uD0zrB69Wpdcskluv3227VmzZq86bp27aqbb75ZgwYNKpifJE2ePFlnnnmmPvzww4Lpjj76aI0ePVqbbrpp3jSPP/64zjnnHM2bN6/oenv27KnPPvus/vfgwYN1//33F11Okg4//HBNmjQpUdq1Va57BgAAAAAAAJIp5d1rpd5NAqisXXfdVe+++26uWe+6+65NXZ6m1KrSBQCAYs466yw9+eSTeuihh7Ry5UoNGDBAr7/+utq3b5+RbubMmRoyZEj97yuuuCJnAPeFF17QSSedpGXLlkmSzEwHHnigdtppJy1fvlwvvviiamtrNXToUN1yyy0ll/cnP/lJfQB3t91201577SUz05QpU/TOO+9Ikj744AMdccQRevHFF7XddtvlzKeurk7f/va3NXbs2Pppm2yyifr166dNNtlEn376qSZOnKiVK1dq/vz5Gjx4sObNm6dhw4blLdtzzz2n4447TkuXLq2ftv/++2vXXXfVypUr9fLLL9cHd8eNG6dDDjlEzz//fM5A7muvvaZTTjlFq1evliS1b99eBxxwgHr37q22bdtq4cKF+vDDD/X2229nrC/lqKOOUseOHfXee+9p/PjxkqSddtpJRx55ZIO022+/fd5tAgAAAAAAAABgQ0MQF8B64Y477tCLL76o6dOna9q0abrkkkt0xx131M93dw0aNKi+WeG+ffvq2muvbZDPsmXLNGjQoPoA7vbbb69HH31Ue+yxR0a6u+++WxdccIEuv/zykso5c+ZMjRgxQt26ddOoUaN07LHHZsx/8skndeaZZ2revHmaM2eOhgwZogkTJsis4VeHN954Y0YA9/LLL9d1112XURN09uzZGjRokJ555hlJ0mWXXaYDDzxQffv2bZDfvHnzNGDAgPqAap8+ffTwww9r3333zUg3evRonXfeeVq2bJk++OADDRkyJKMcKddff319APfb3/627r77bm288cYN0q1YsULjx49vkMfAgQM1cOBA1dTU1Adx+/btq9/97ncN8gAAAAAAAAAAoDmhT1wA64UuXbpo9OjRatmypSRp5MiRGUHBG2+8Uc8++6wkqWPHjho9erRatWr4ncq9995bX9O0U6dOGjduXIMAriSdd955uuWWW7RixYqSyrlq1Sq1aNFCY8eObRDAlaTjjjtOjz/+eH3QdtKkSXryyScbpFu4cKF+/vOf1/++5JJLdMMNNzRoyneLLbbQ2LFjtd9++0kKzS9fccUVOct288031/dL27VrV02YMKFBAFeSzjzzTI0ePbr+9xNPPKHnnnuuQbrnn39ektS2bVvV1NTkDOCm5h9//PEFm5cGAAAAAAAAAABpBHEBrDcOPvhgXXnllfW/hwwZolmzZmnKlCm66qqr6qf/9re/VZ8+fXLmcd9999WPX3zxxerVq1fe9Q0dOlQ77rhjyeUcOHCgDjrooLzzDz30UA0YMKD+9913390gzZgxY7R48WJJ0uabb67rr78+b35t27bNqL06ceJEvf/++xlp3F133XVX/e+rr75a22yzTd48Tz75ZB133HH1v+O1nlMWLlwoSerQoYM6duyYNy8AAAAAAAAAAFAagrgA1ivXXHNNfYB07ty5OuusszRgwACtXLlSknTqqadq8ODBOZddtGiR3njjjfrf8UBqLi1atNAZZ5xRchnPPvvsomkGDRpUPz5p0iS5e8b8CRMm1I+ffvrpDfr/zbb//vtr9913r/89ceLEjPnTpk3T7NmzJYXtiq8/n3PPPTejjNlSQeB58+ZpzJgxRfMDAAAAAAAAAADJEMSNmFkbMzvLzP5uZtPNbLmZzTKzF83sx2bWvQnKcJiZ/dbM3jSzz6MyfGpmr5jZ7Wb2HTPL3V4p0Ey0bNlSo0aNUufOnSVJ48ePr691uvXWW+vOO+/Mu+ybb76puro6SVLnzp0T1bJNNVOclJnl7I82W9++feubVJ4/f75qa2sz5seDzQcffHCidcfTTZkyJW9+O+20k7p161ZSfrNnz9bMmTMz5p922mn14wMHDtQJJ5yg0aNHa9asWYnKCwAAAAAAAAAAciOIK8nMdpL0sqQHJB0naRtJbSVtIelASb+WNNXMjm+k9W9nZk9J+oekH0r6L0mbRmXYStJ+kr4v6Q+ShjRGGYD1ybbbbqvbb789Y1qLFi304IMPqmvXrnmXmzt3bv34VlttlWhdPXv2LKlsG2+8caKmhTt37qwuXbrU//7iiy8y5sd/F2ryOa5379714/FtXdv8Nt98c7Vr1y5vnldeeWV9oNfd9cQTT2jgwIHq0aOHtttuOw0aNEgPPvhgfbPLAAAAAAAAAAAgmWYfxDWzrSSNl7RXNMkVgqm/l/SEpGXR9M0k/cXMjizz+veQ9IqkY2KT35X0qKQ7JY2R9Lqk1eVcL7C+22yzzTJ+9+zZU/vvv3/BZVJ9zEqhH9ckNtpoo5LKlTTf7LwXLVqUMS9e1qRlKHd+xfLs0KGDJk6cqBEjRjTog/jjjz/WAw88oLPPPltbbrmlLrvsMi1btkwAAAAAAAAAAKC4Zh/ElTRaUo9ofLqkPd29n7uf6+4nKNTKHR/Nby3pD2aWv6pfCcysd5R3ql3T8ZJ2d/dd3f1Udx/q7me6+76SNpf0XUlvl2PdwPrsyy+/bNCn66effqpLLrmk4HLxgOTSpUsTrWvJkiUllS1pvtl5d+rUKWNevDZv0jKUO79ieUpS69atNWzYMP3nP//R22+/rdtuu02nn356Rg3mpUuX6sYbb1T//v0J5AIAAAAAAAAAkECzDuJGzSMfFv1cKemb7v5WPI27z5V0oqSPokmbSLq8TEW4S+kA7iOSjnH3d3IldPev3P0+d3+6TOsG1ltDhgyp73d1++23V4sW4VY2cuRIPfHEE3mX69493bX1jBkzEq0rabqUefPmNaixmsvChQu1YMGCnGWTpE033bR+/JNPPkm07unTp5c1v88//1zLly/Pm2e23XbbTRdccIEeeughffbZZ3rjjTc0ZEi6BfjJkyfrtttuS7RuAAAAAAAAAACas2YdxJX0g9j4/e6es5aruy+RdE1s0vfMrNW6rNjMTpR0dPTzE0nnufuadckTaA7uvPNOPf7445JCc75//etfdcUVV9TPHzJkiGbPnp1z2T322ENmJklasGCB3n///aLre/XVV0sqn7tr8uTJRdNNnjxZ7i5J6tq1q7bddtuM+XvttVf9+Isvvpho3S+88EL9+N577503v/fee09fffVVSfltscUW6tGjR4HUDe2555665557dP7559dPGzt2bIN0qWMCAAAAAAAAAACCZhvENbOOkuL9295XZJE/SkpVr9tE6Rq8a+v7sfER7l686h7QzL3//vsZTSaPGDFCO+ywg4YPH17fH+4XX3yhwYMH1wdI4zp37pwRzBwzZkzB9dXV1emhhx4quZwPPvhg0TQ1NTX14/369WsQyDziiCPqxx9++OGMGrG5TJkyRW+9lW5IoH///hnzd955Z22xxRaSpDVr1mjUqFFFy3jffenbYnZ+pfjGN75RPz5nzpwG89u1a1c/vmrVqrVeDwAAAAAAAAAAG4pmG8SVdJCkttH4EkkFq9u5+wpJL8cmHZEvbTFmtpnStXAlqXAkCYBWrVqlAQMG1Pc5e+KJJ9bX8GzVqpVGjx5d3+/r008/rVtuuSVnPuecc079+IgRIzKaIM42cuTIRLV1s40aNapg7dl//vOfGcHhc889t0GaAQMG1PdBO2vWLP3sZz/Lm9/KlSt14YUX1v/u37+/dtxxx4w0ZpZRI/a6664r2FT03/72t4ymqYcOHZoxf8WKFVq8eHHe5ePizTfHm3VO6datW/14qc1XAwAAAAAAAACwIWrOQdydY+Nvu/vqBMtMybN8qQ5Uet+/7+6fm1kXM7vUzCab2ZdmttTMppvZo2Z2uplV1bEysx+Y2dTGHiT1qfS2ojpceeWVmjIlXIJbbrml7rnnnoz5X/va1zICtz/96U/19tsNW0j/7ne/W9908aJFi3T00UfrzTffbJDu7rvv1o9+9CO1bdu2wbxCWrdurbq6Op1wwgl6+umGXVg/9dRTOvHEE+trCh922GE6/vjjG6Tr3Lmzrrrqqvrfv/rVr3T11Vdr5cqVGenmzJmjk08+uT5o3KpVK/3yl7/MWbZhw4apZ8+ekqQvv/xSRx55pP71r381SPfII4/otNNOq//9zW9+U4cdltn4wKxZs7T11lvr0ksv1SuvvJJzfe6up556Stdck26NPte27r777vXjkydP/n/27jxKj7LA9/ivskJIh7ATYCQQlhAWAVkE0UkyEUEcZDlBJYwCjpjAKDDDcpzriHfudTxwUCDgsEQhKgPDcg0BRQZZohyCAckgyiI4EEGCSgKBBJJOQur+kaZ5s3Z3lu6H9OdzTp+pet+n6nmqR/t4+FJV7X5nLwAAAAAAbKiqlT1ytDuoqurf8+4jjW+q6/rT7Tjm9CTfadl9sq7rPddw7v+b5H+17P4oycVJ/jPJ+1Zz2GNJjqvr+vk1mXNdq6rq60ku6Kr5hw0blieeeGK1Y5qbm/Pcc8+tdszOO+/cZqSbMsX7Ot8xfHjX/L2477778tGPfjRLlixJVVW56667cvjhh6907OjRo3PrrbcmSfbaa6888sgjyzyuN0l+8Ytf5PDDD09zc3OSpXepHnLIIRk6dGgWLFiQqVOnZsaMGUmSyy67LGeeeWaSZKeddlrpf6ZmzJjRGoZ33HHHHHfccbnkkkuSJPvss0/rI5ynT5++TFjeeuutM3Xq1AwZsvJ/V2HJkiU55phjlrkjdosttsiIESOy2Wab5cUXX8z999/feh3J0ruLzzrrrFX8Jpde+5FHHtl6R3NVVTn44IMzbNiwLFy4MNOmTcuzzz7bOn7XXXfNgw8+uMIdtI3XnCSbb7559ttvv2y//fbp27dv/vKXv+Txxx/P88+/+ydrt912y/Tp07PJJpussK7DDjus9R28AwcOzBFHHJFBgwalR4+l//7KkCFDMm7cuBWOW5fW1d8MAAAAANqnI//stav+2STQtfbcc888+eSTK/tqjTvde0V3jrg3JTmh0tCZWAAAIABJREFUZXd8XddntuOY45L8v5bdP9V1PWgN5/5+ks+27N6b5ANJBrbsT0/yeJKeSQ5MMrTh0D8nOaCu6z+uybzrkojbPXXF/1B69dVXs88++7Q+ZvfMM8/MpZdeusrxr732WvbZZ5/88Y9L/2vypS99KePHj19h3F133ZWTTjops2fPXul5+vTpk/Hjx2fkyJHZbbfdkiwNsiu7a3f5iPvss8/mjDPOyIQJE1a5zl122SWTJk3KXnvttcoxSbJ48eKcffbZufLKK/P222+vctymm26aSy+9NCeffPJqz5ckv/zlLzNmzJg2//sxatSo3HDDDSt9BPJLL72UIUOGLBOQV2f48OG58cYbW9/Lu7zp06dnxIgReeONN1b6/V//9V9nypQp7ZprTYm4AAAAAJ1LxAXa0p0jbq+uXkAX6t+wPb+dxzSO67/KUW0b2LD9Ny3/d1aSE+q6vr9xYFVVJySZmGTjJNskuT7J8LWYmw7yPw661mmnndYacPfaa69ceOGFqx2/2Wab5Qc/+EFGjRqVJUuW5PLLL8+RRx6ZI488cplxRxxxRJ566qlcfvnlmTx5cp5//vnUdZ0ddtgho0aNyrhx4zJs2LBMmzat9ZiBAwcuP91K9e7dO9dcc01Gjx6d733ve3n44Yfz8ssvp1+/fhk6dGhGjx6dsWPHrnCH8Mr06tUrl19+ecaOHZtrr7029957b1588cXMnTs3m2++eXbbbbd8/OMfzxe+8IVl3i27Oh/84Afz1FNP5frrr89tt92Wxx57LH/5y1/Su3fvbLvttjnssMPymc98ZpV3OyfJ9ttvn9mzZ+e+++7LAw88kEcffTS///3v88orr2ThwoVpamrKjjvumAMPPDCf+tSnMmrUqNWuaf/998/jjz+eyy+/PPfdd1+ee+65zJs3b7XhGgAAAAAANlTd+U7ce5OMbNn9P3Vdf21141uOGZmld84mydt1Xa9RBK+q6p68G2+T5O0kh9V1/ctVjD8hyU0NH42o63rKmsy9rnSnO3Hp3iZMmJDTTjstSfLFL34xV111VReviPXF3wwAAACAzuVOXKAt3flO3B5dvYAutKBhu087j2n8J/ftvXu3rbmT5EerCrhJUtf1zUl+1fBRm+/vBdaNm2++uXX7wAMP7MKVAAAAAAAA3UV3fpzyvIbtjdt5TOO4easc1bG5k2RSO46ZlOSAlu1D12LudeWVJCv9Vx/WsSFZNp5Dp5k8eXLuueeeJEnfvn1z7LHHdvGKAAAAAACA7qA7R9zZDdvbtPOYbRu2X11Hcyfti6GNY7Zfi7nXibquv5PkO+t7nqqqnkgybH3PQ/fywgsv5JxzzslZZ52VQw45JFW17GNbFi5cmGuuuSbnnHNO62ef//zns/nmm3f2UgEAAAAAgG6oO0fc3zVs79jOY97XsP30Wsy9/LHtuau3cUzTWswN3d6SJUtyyy235JZbbsm2226b/fffP4MGDUpVVZk5c2YeeuihvPbaa63jhw4dmgsvvLALVwwAAAAAAHQn3TniPtWwvXdVVb3qul7cxjH7r+L4jvrtcvvtibKNY15fi7mBBn/6059y5513rvL7kSNH5qabbkr//v07cVUAAAAAAEB31p0j7tQkzVn6vtVNsvR9s79c1eCqqvom+WDDR/etxdy/TPJmy7zJ0scFP9bGMY2PFH5xLeaGbm/w4MGZNm1a7rjjjjz00EN56aWXMmvWrMyZMydNTU0ZNGhQPvShD+WEE07IqFGjunq5AAAAAABAN9NtI25d1/Oqqro3ycdbPjo5q4m4SY7Lu3fDvpbkF2sx9/yqqu5KcnzLR8cmuaGNw45t2P75ms4NLHXQQQfloIMO6uplAAAAAAAArKBHVy+gi/17w/YpVVXtubJBVVX1S/KvDR9d3Y5HL7flsobt46qq+uCqBlZVdUKSDzR89P21nBsAAAAAAAAoVLeOuHVd/yTJAy27fZL8uKqqvRvHVFW1RZLbkuzS8tGrSS5c2fmqqhpcVVXd8DN8NXM/kGRyy26PJLevbHxVVaOTTGz46Ka6rtt69DIAAAAAAADwHtVtH6fc4MQkDycZlGRwkseqqvp5kueSbJVkVJJ+LWMXJzmhrus562juU5M8mGRoy1z3V1X1aJLHk/RMcmCSPRrGP5nktHU0NwAAAAAAAFCgbh9x67r+Y1VVI5PcmGTfLL0rdkTLT6NXkpxS1/W963DuV6uq+pssvdP2oy0ffyDLPjr5HXcmOamu6zfW1fwAAAAAAABAebp9xE2Suq6frqrq4CSfTvKZJHsm2SbJnCy9I3dSkmvrup61HuaemeTwqqo+kWRMlt59OyhJneTlLH3c8/V1Xd+3rucGAAAAAAAAyiPitqjremGSH7T8rOk5ZiSp1vDYHyf58ZrODQAAAAAAAGwYenT1AgAAAAAAAAB4l4gLAAAAAAAAUBARFwAAAAAAAKAgIi4AAAAAAABAQURcAAAAAAAAgIKIuAAAAAAAAAAFEXEBAAAAAAAACiLiAgAAAAAAABRExAUAAAAAAAAoiIgLAAAAAAAAUBARFyje4MGDU1VVqqrKjBkzVvj+5JNPbv1+4sSJnbauiRMnts578sknd9q8nWHGjBmt1zZ48OCuXg4AAAAAAHQrvbp6AVC6asqUrl5CMerhw7t6CQAAAAAAABs8d+ICFMQdsAAAAAAAgIgLAAAAAAAAUBCPUwbe8yZOnNip78IFAAAAAABYn9yJCwAAAAAAAFAQERcAAAAAAACgICIu8J538sknp6qqVFXVrscq//a3v824ceOy6667pl+/ftlyyy1zwAEH5Jvf/GZmzZqVZOkjmt8558knn9yh9UyaNCl/+7d/m/e9733p27dvtt566xx++OG5/vrrU9f1So95Z76ddtqp9bM//OEPrWtY/mdVZs2alQsuuCD77rtvNt100zQ1NWWPPfbIl7/85Tz11FNJkhkzZrSeZ/DgwR26tvvvvz8nnnhihgwZko033jhbbrllDjvssIwfPz4LFixo8/jBgwe3zj1jxowkyTPPPJOzzz47w4YNS1NTUzbZZJMccMABGT9+fBYtWrTCOR5++OH83d/9XXbffffW//997GMfy+TJkzt0LQAAAAAAUCrvxAW6lYsuuihf/epXl4mD8+fPz+zZs/Poo4/m8ssvz6233rpG53799dfz2c9+Nrfffvsyn7/yyiv52c9+lp/97Gf5j//4j/zoRz/KxhtvvFbXsTJ33313xowZ0xqi3/H000/n6aefztVXX53x48fnYx/7WIfPvWjRonz5y1/OVVddtcznCxYsyIMPPpgHH3ww3/nOdzJp0qQMGzas3eedOHFixo0bt0IAfvTRR/Poo4/mjjvuyI9//OP07ds3b7/9dsaNG5cJEyYsM3b+/Pm5++67c/fdd+ess87KJZdc0uHrAwAAAACAkoi4QLfx7W9/O+eff37r/kYbbZQRI0Zkhx12yKxZs3L//ffn5Zdfzic+8YmcddZZHTr322+/neOPPz733ntv+vTpk0MPPTRDhgzJggUL8sADD+SFF15Iktx11135x3/8x1x55ZXLHL/HHnvkjDPOyNy5c/ODH/wgSdLU1JTPfvaz7Zr/wQcfzDHHHJP58+cnSaqqyiGHHJKhQ4dmwYIFmTp1ambMmJGxY8fmsssu69C1Jcn555/fGnD32muv7LfffqmqKtOnT89vf/vbJEvvqB05cmSmTp2anXfeuc1z3nnnnfmHf/iH1HWdPfbYIwcccEB69+6dRx55JL/5zW+SJPfcc0++9KUv5ZprrsnYsWPz3e9+Nz169MgHP/jBDB06NM3Nzbn//vszc+bMJMmll16aAw44IGPGjOnwNQIAAAAAQClEXKBbeOKJJ/KVr3yldf+oo47Kddddl6222qr1s7feeiv/9E//lKuuuir/9m//1qHz33LLLWlubs6RRx6ZCRMmZPvtt2/9bvHixfnKV76Siy++OEly9dVX5/zzz1/mUcYHH3xwDj744MyYMaM14m6++ea54oor2px7/vz5+dznPtcacHfdddfccsstef/737/MuAkTJuT000/Peeed16FrmzlzZi655JJsscUWuf7663PEEUcs8/1Pf/rTjBkzJq+99lr+/Oc/5/Of/3zuu+++1T72OUnOPvvsNDU15Yc//GGOPvroZb4bP358zjzzzCTJddddl9133z3f/e53s/fee+c///M/l7nbt7m5OaeeempuuOGGJMm//Mu/5MQTT2xzfgAAAAAAKJV34gLdwte//vUsXLgwSXLAAQfkRz/60TIBN0n69euXK6+8MqNHj05zc3OHzt/c3JwPf/jDuf3225cJuEnSq1evXHTRRTnwwAOTJHVd56abblqLq1nWtddem//5n/9JsvTu3Z/97GcrBNwk+cIXvpDLLrusw9e2aNGi9OjRI7fffvsKATdJjjzyyEyePLk1mk6ZMiU//elP23Xe2267bYWAmyRf/vKXWx/7vHjx4pxzzjnZdtttc++9967wuOa+ffvm6quvzhZbbJEkef755/Pwww936BoBAAAAAKAkIi6wwXv11VczefLk1v2LLrooffr0WeX4b33rW+nRo+N/Hi+55JL06rXyBxxUVZVTTjmldf+RRx7p8PlX5brrrmvdPvvss7PjjjuucuzYsWOz++67d3iOk046KYceeugqv//whz+cE088sXV/+ffWrswxxxyTESNGrPL7T33qU8vs//M///MK4f0d/fv3z1FHHdW6vy5/vwAAAAAA0NlEXGCDN3Xq1CxatChJMmjQoAwfPny14//qr/4qH/nIRzo0x84775wPfOADqx2z3377tW7PmDGjQ+dflblz5+a///u/W/cbQ+rK9OjRI5/5zGc6PE973s37uc99rnV7ypQpqet6teOPP/741X6/1157LbN/3HHHtXv8888/v9qxAAAAAABQMhEX2OA99thjrdsHHnhgu96V+s6jj9tr7733bnPMO4/7TZLXX3+9Q+dflV//+tdZsmRJkmTAgAHtusu2o9dWVVUOPvjgNscdfPDBrb/bOXPmtBmq99xzz9V+v9lmm7Vub7rppis8pnp149944402VgsAAAAAAOUScYEN3qxZs1q3d9hhh3Yd01YwXN6mm27a5pjevXu3br9zZ/Da6oxr22yzzdK/f/82xw0YMGCZ38Mrr7yy2vFt/c4aH03dnt9v4/h19fsFAAAAAICuIOICG7x58+a1bvfr169dx2yyySYdmqM9d/euD51xbe097/Lnnjt37mrHduR31lW/XwAAAAAA6AoiLrDBawyLb731VruOefPNN9fXctapzri29p53+XM3NTV1aB4AAAAAAGApERfY4G255Zat23/84x/bdcxLL720vpazTjVeW3vX3NFre+2119q8qzZZ+h7axnf9Nq4NAAAAAABoPxEX2ODtu+++rdu/+tWvUtd1m8c88sgj63NJq9TRxwa///3vbz3m9ddfz+9+97s2j+notdV1nWnTprU5btq0aa2/24EDB2annXbq0DwAAAAAAMBSIi6wwTv00EPTu3fvJMnMmTMzZcqU1Y5/8cUX88ADD3TCyla00UYbtW4vWrSozfEDBgzIfvvt17p/ww03rHb8kiVLcuONN3Z4XT/84Q/bHDNx4sTW7eHDh3uPLQAAAAAArCERF9jgbbHFFjn66KNb988777wsXLhwlePPOeecvP32252xtBUMHDgwPXos/dP8l7/8pV0h95RTTmndvuSSS/KHP/xhlWOvuuqqdt2tu7zrr78+U6dOXeX3DzzwwDJx+O///u87PAcAAAAAALCUiAt0CxdccEHr3bi/+tWvctxxx+WVV15ZZsxbb72VcePG5eabb07fvn27Ypnp27dvdttttyTJ4sWLM2nSpDaPOfXUU1sfXTx37tx89KMfza9//esVxk2YMCFnnnlmh6+td+/eWbJkSY4++uj813/91wrf33XXXfnkJz/Z+ijlj3zkI/n4xz/eoTkAAAAAAIB39erqBQB0hr333jvf+MY3ct555yVJfvKTn2THHXfMiBEjsv3222f27Nm57777MmfOnAwcODBnn312LrjggiRpvTO2sxx//PH5xje+kSQ56aST8v3vfz+77LJLa4ROkosvvrh1u1+/fpk4cWIOP/zwNDc359lnn81+++2XQw45JEOHDs2CBQsyderUzJgxI0nyrW99K2eeeWaS9l3bdtttl+OOOy6XXHJJjjjiiOyzzz6tj3CePn16fvOb37SO3XrrrXPttdd6lDIAAAAAAKwFERfoNs4999wsXrw4X/va17J48eLMnz8/d9555zJjBg0alFtvvTVPPPFE62dNTU2dus7zzjsvkyZNypNPPplFixatsMZk2YibLL379bbbbstJJ52U2bNnp67rTJ06dZlHIPfp0yfjx4/PyJEjWyNue6/twgsvzLx58zJhwoQ8/vjjefzxx1cYs8suu2TSpEkZMmRIRy4XAAAAAABYjogLbaiHD+/qJbAOfeUrX8knPvGJXHHFFbnnnnsyc+bM9OvXL4MHD87xxx+f0047LVtuuWUeeOCB1mMGDhzYqWscMGBAHn744Vx55ZW544478tRTT2XOnDltvh/3iCOOyFNPPZXLL788kydPzvPPP5+6rrPDDjtk1KhRGTduXIYNG5Zp06a1HtPea+vdu3euueaajB49Ot/73vfy8MMP5+WXX06/fv0ydOjQjB49OmPHjs1GG220VtcOAAAA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sECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAALRIgLAAAAAAAAsECEuAAAAAAAAAAL5P8H/3IVaCXdMhwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 2160x900 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "width=0.25\n",
    "address=np.arange(len(train_data.columns))\n",
    "tick_label=train_data.columns\n",
    "plt.figure(dpi=600,figsize=(3.6,1.5))\n",
    "plt.bar(address\n",
    "        ,xlf.feature_importances_\n",
    "        ,width\n",
    "        ,color='y'\n",
    "        ,label='xgboost')\n",
    "plt.bar(address+width\n",
    "        ,llf.feature_importances_/sum(llf.feature_importances_)\n",
    "        ,width\n",
    "        ,color='c'\n",
    "        ,label='lightgbm')\n",
    "plt.legend(fontsize=4)\n",
    "plt.xticks(address+width\n",
    "           ,tick_label\n",
    "           ,fontsize=4\n",
    "           ,rotation=90\n",
    "           ,horizontalalignment='center')\n",
    "plt.yticks(fontsize=4,rotation=0)\n",
    "plt.title('xgboost&lightgbm——feature_importances_',fontsize=4)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 生成提交文件"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "DH829189593918 105.0\n",
    "24 105.0\n",
    "LE381377964668 68.0\n",
    "87,68.0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {},
   "outputs": [],
   "source": [
    "test['label'] = answers\n",
    "result=test[['loadingOrder', 'label']]\n",
    "test_data_path = '../R2 ATest 0711.csv'\n",
    "test_data=pd.read_csv(test_data_path)\n",
    "test_data=get_data(test_data, mode='test')\n",
    "#\n",
    "test_data = test_data.merge(result, on='loadingOrder', how='left')\n",
    "test_data['ETA'] = (test_data['onboardDate'] + test_data['label'].apply(lambda x:pd.Timedelta(hours=x))).apply(lambda x:x.strftime('%Y/%m/%d  %H:%M:%S'))\n",
    "test_data.drop(['direction','TRANSPORT_TRACE'],axis=1,inplace=True)\n",
    "test_data['onboardDate'] = test_data['onboardDate'].apply(lambda x:x.strftime('%Y/%m/%d  %H:%M:%S'))\n",
    "test_data['creatDate'] = pd.datetime.now().strftime('%Y/%m/%d  %H:%M:%S')\n",
    "test_data['timestamp'] = test_data['temp_timestamp']\n",
    "# 整理columns顺序\n",
    "submit = test_data[['loadingOrder', 'timestamp', 'longitude', 'latitude', 'carrierName', 'vesselMMSI', 'onboardDate', 'ETA', 'creatDate']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>loadingOrder</th>\n",
       "      <th>timestamp</th>\n",
       "      <th>longitude</th>\n",
       "      <th>latitude</th>\n",
       "      <th>carrierName</th>\n",
       "      <th>vesselMMSI</th>\n",
       "      <th>onboardDate</th>\n",
       "      <th>ETA</th>\n",
       "      <th>creatDate</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>29536</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:19:28.000Z</td>\n",
       "      <td>114.061383</td>\n",
       "      <td>22.359500</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29537</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:24:28.000Z</td>\n",
       "      <td>114.074933</td>\n",
       "      <td>22.350750</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29538</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:29:58.000Z</td>\n",
       "      <td>114.081983</td>\n",
       "      <td>22.329350</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29541</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:30:28.000Z</td>\n",
       "      <td>114.082833</td>\n",
       "      <td>22.327083</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>29544</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-01-28T05:31:28.000Z</td>\n",
       "      <td>114.084383</td>\n",
       "      <td>22.323150</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32945</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:41:08.000Z</td>\n",
       "      <td>31.126853</td>\n",
       "      <td>-29.817860</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32946</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:43:08.000Z</td>\n",
       "      <td>31.125547</td>\n",
       "      <td>-29.818770</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32947</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:46:08.000Z</td>\n",
       "      <td>31.119920</td>\n",
       "      <td>-29.818930</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32948</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T07:47:08.000Z</td>\n",
       "      <td>31.118000</td>\n",
       "      <td>-29.818530</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>32949</th>\n",
       "      <td>FA712454830300</td>\n",
       "      <td>2020-02-23T08:16:08.000Z</td>\n",
       "      <td>31.069547</td>\n",
       "      <td>-29.854480</td>\n",
       "      <td>RWHZVZ</td>\n",
       "      <td>D2070531050</td>\n",
       "      <td>2020/01/28  04:52:18</td>\n",
       "      <td>2020/02/08  15:04:30</td>\n",
       "      <td>2020/07/21  18:39:14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>735 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         loadingOrder                 timestamp   longitude   latitude  \\\n",
       "29536  FA712454830300  2020-01-28T05:19:28.000Z  114.061383  22.359500   \n",
       "29537  FA712454830300  2020-01-28T05:24:28.000Z  114.074933  22.350750   \n",
       "29538  FA712454830300  2020-01-28T05:29:58.000Z  114.081983  22.329350   \n",
       "29541  FA712454830300  2020-01-28T05:30:28.000Z  114.082833  22.327083   \n",
       "29544  FA712454830300  2020-01-28T05:31:28.000Z  114.084383  22.323150   \n",
       "...               ...                       ...         ...        ...   \n",
       "32945  FA712454830300  2020-02-23T07:41:08.000Z   31.126853 -29.817860   \n",
       "32946  FA712454830300  2020-02-23T07:43:08.000Z   31.125547 -29.818770   \n",
       "32947  FA712454830300  2020-02-23T07:46:08.000Z   31.119920 -29.818930   \n",
       "32948  FA712454830300  2020-02-23T07:47:08.000Z   31.118000 -29.818530   \n",
       "32949  FA712454830300  2020-02-23T08:16:08.000Z   31.069547 -29.854480   \n",
       "\n",
       "      carrierName   vesselMMSI           onboardDate                   ETA  \\\n",
       "29536      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "29537      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "29538      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "29541      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "29544      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "...           ...          ...                   ...                   ...   \n",
       "32945      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "32946      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "32947      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "32948      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "32949      RWHZVZ  D2070531050  2020/01/28  04:52:18  2020/02/08  15:04:30   \n",
       "\n",
       "                  creatDate  \n",
       "29536  2020/07/21  18:39:14  \n",
       "29537  2020/07/21  18:39:14  \n",
       "29538  2020/07/21  18:39:14  \n",
       "29541  2020/07/21  18:39:14  \n",
       "29544  2020/07/21  18:39:14  \n",
       "...                     ...  \n",
       "32945  2020/07/21  18:39:14  \n",
       "32946  2020/07/21  18:39:14  \n",
       "32947  2020/07/21  18:39:14  \n",
       "32948  2020/07/21  18:39:14  \n",
       "32949  2020/07/21  18:39:14  \n",
       "\n",
       "[735 rows x 9 columns]"
      ]
     },
     "execution_count": 122,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "submit[submit['loadingOrder'].isin(['FA712454830300'])]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [],
   "source": [
    "submit.to_csv('../submit/716subv2.csv', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.save('../submit/716subv2.npy',answers)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "huawei_copy",
   "language": "python",
   "name": "huawei_copy"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
